(function (){
    var muoo = {
        select:function(Class){
            return new function(){

                this.Extends = function(){
                    Class.prototype = new arguments[0];
                };/*end Extends*/

                this.Fextends = function(){
                    var m,instance = new arguments[0];
                    for(m in instance){Class.prototype[m] = instance[m];}
                };/*end Fextends*/

                this.Is = function(Type){
                    return Class.getType() == arguments[0];
                };/*end Is*/

                this.New = function(){
                    var instance = new Class, _stype = Class.name, _type = Class;
                    if(instance[Class.name]!=undefined){
                        instance[Class.name].apply(instance,arguments);
                    }
                    Class.prototype.getTypeName = function() {
                        return _stype;
                    };
                    Class.prototype.getType = function(){return _type; };
                    return instance;
                };/*end New*/

                this.Annotations = function(){
                    var arr = Class.toString().split("@@"),arr_tmp={},i,j,tmp;
                    for(i=0;i<arr.length;i++){
                        if(arr[i][0]=="-"){
                            arr_tmp[arr[i].split("-")[1]] ={};
                            tmp = arr[i].split("-")[2].split(",");
                            tmp[0]=tmp[0].replace(/\n/g,"").replace(/\r/g,"").replace(/\n\r/g,"").replace(/^\s+|\s+$/,"");
                            tmp[1]=tmp[1].replace(/\n/g,"").replace(/\r/g,"").replace(/\n\r/g,"").replace(/^\s+|\s+$/,"");
                            for(j=0;j<tmp.length;j++){
                                arr_tmp[arr[i].split("-")[1]][tmp[j].split(":")[0]]=
                                    tmp[j].split(":")[1].replace(/\n/g,"").replace(/\r/g,"").replace(/\n\r/g,"").replace(/^\s+|\s+$/,"");
                            }
                        }
                    }
                    return arr_tmp;
                }
            };/*end return*/
        }/*end select*/
    };/*end muoo*/

    if(!window.mu){window.mu=muoo.select;}

})();




